package com.xf.system.common.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xf.system.common.model.Menu;
import com.xf.system.http.req.menu.MenuListReqDTO;
import com.xf.system.http.vo.menu.MenuTreeVO;
import com.xf.system.http.vo.role.RoleMenuDetailVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author xiefengf
 */
@Repository
public interface MenuMapper extends BaseMapper<Menu> {

    /**
     * 查询当前角色对应的所有菜单信息
     *
     * @param id 角色主键id
     * @return 菜单列表
     */
    List<RoleMenuDetailVO> selectMenuByRid(@Param("id") Long id);

    /**
     * 条件查询所有菜单数据
     *
     * @param reqDto 菜单名称+菜单状态
     * @return 菜单列表
     */
    List<Menu> selectMenuList(@Param("reqDto") MenuListReqDTO reqDto);

    /**
     * 通过菜单id查询菜单详情信息
     *
     * @param id 菜单id
     * @return 菜单详情信息
     */
    MenuTreeVO selectMenuById(@Param("id") Long id);

    /**
     * 根据菜单名+父菜单id查询菜单数据
     *
     * @param menuName 菜单名称
     * @param parentId 父部门id
     * @return 菜单详细信息
     */
    Menu selectMenuByName(@Param("menuName")String menuName, @Param("parentId")Long parentId);


}
